Field of the Invention
The invention relates in general to a communication system, and more particularly to a soft output decoder used in a receiver of convolutional communication.
Description of the Related Art
In the process of data transmission of a digital communication system, incorrect messages may be received at a receiver end frequently due to unpredictable interference. Without increasing the transmission power, channel coding, although effectively reduces the error rate, poses a setback of occupying the transmission bandwidth. In view of the increasing demand of data transmission and storage systems of the public, not only the transmission rate will get faster but also the quality of service (QoS) will get higher in the future. As channel coding ensures that an error of the transmission bit is controlled within a certain range, channel coding is a critical consideration in the system design.
Convolutional coding is often used in channel coding to prevent a receiver from receiving incorrect messages. At a transmitting end, a code vector or an information block transmitted may be described by a trellis diagram. The complexity of a trellis diagram is determined by a constraint length of an encoder. Although the operation complexity gets higher as the length of the constraint length gets longer, such coding relatively provides better robustness.
At a receiving end, a soft-decision decoder may be adopted to identify a maximum likelihood code vector through a Viterbi algorithm and trellis architecture to perform decoding. However, the operation complexity of the Viterbi algorithm exponentially increases as the constraint length gets longer. In other words, a Viterbi decoder may require a substantial amount of memory and consume significant power to decode the convolutional coding having a longer constraint length.
Turbo coding is proven to render better performance than common coding technologies. A turbo code is formed from processing two or more convolutional codes by a turbo interleaver. To decode turbo codes, convolutional codes are individually decoded by a soft-decision decoder using an iteration approach. A soft-decision decoder decodes a convolutional code to provide extrinsic information, which allows the soft-decision decoder to provide a more accurate result when the soft-decision decoder decodes another convolutional code. In the prior art, soft-decision decoding may adopt a maximum a-posterioriprobability (MAP) algorithm or a soft output Viterbi algorithm (SOVA), both of which requiring forward recursion and backward recursion for decoding to determine the soft output of one information block. In general, in an environment with a lower signal-to-noise ratio (SNR), turbo codes render better performance than other convolutional codes.
The computation amount of the MAP algorithm not only is huge and complicated, but also involves index calculation. Without special processing, decoding hardware requirement or time delay generated during the decoding process is often significantly increased.